2010-04-04 19:41:00
昨天晚上和同事讨论写 Log 的问题,谈到写到文件,后来谈到写文件用 ReadFile、WriteFile 还是用 fread、fwrite 的问题。我一直对 fread、fwrite 没啥好感,原因是它自作主张的搞了一套缓存机制。可是仅仅这点就鄙视它似乎还说不过去。谈着谈着,后来我们对它的参数设计起了怀疑——这里有一个参数是多余的!从表面看,ReadFile、WriteFile 的参数是恰到好处的,fread、fwrite 作为它们的上层函数,似乎没必要把一个参数拆成 2 个呀。
后来就一直跟 fread,直到出现 ReadFile,都没发现这 2 个参数有什么特别的用处,他们很早就被乘起来了:
count = total = elementSize * count;
所以,目前我仍然对这个设计感到困惑。
有谁知道,这是由于什么样的历史原因/技术原因,才使这个函数变成现在这副模样的?
首发:http://www.cppblog.com/Streamlet/archive/2010/04/04/111605.html